package xyz.lwm.lazycat.web.route;

import xyz.lwm.lazycat.web.handle.Handler;
import xyz.lwm.lazycat.web.handle.HandlerType;

/**
 * 路由表
 *
 * @author lwm
 */
public interface RouteTable {

    /**
     * 添加反向代理路由
     *
     * @param route 反向代理路由
     */
    void add(Route route);

    /**
     * 添加路由
     *
     * @param path 路由路径
     * @param type 路由类型
     * @param handler 路由处理
     */
    void add(String path, HandlerType type, Handler handler);

    /**
     * 分类路由
     */
    void classify();

    /**
     *
     * @param type 路由类型
     * @param path 路由路径
     * @return 路由
     */
    Route get(HandlerType type, String path);

}
